package net.guerlab.smart.wx.core.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.guerlab.smart.wx.core.entity.IJwtInfo;

import javax.persistence.Column;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Collections;

/**
 * 微信用户
 *
 * @author guer
 */
@SuppressWarnings("AlibabaPojoNoDefaultValue")
@Data
@ApiModel("微信用户")
public class WxUserDTO implements IJwtInfo {

    /**
     * openId
     */
    @ApiModelProperty("openId")
    private String openId;

    /**
     * 应用ID
     */
    @ApiModelProperty("应用ID")
    private String appId;

    /**
     * 应用名称
     */
    @Column(name = "appName", nullable = false)
    private String appName;

    /**
     * unionId
     */
    @ApiModelProperty("unionId")
    private String unionId;

    /**
     * 头像地址
     */
    @ApiModelProperty("头像地址")
    private String avatarUrl;

    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    private String nickName;

    /**
     * 注册时间
     */
    @ApiModelProperty("注册时间")
    private LocalDateTime registryTime;

    /**
     * 最后登录时间
     */
    @ApiModelProperty("最后登录时间")
    private LocalDateTime lastLoginTime;

    /**
     * 账号是否已激活
     */
    @ApiModelProperty("账号是否已激活")
    private Boolean activated;

    /**
     * 标签ID列表
     */
    @ApiModelProperty("标签ID列表")
    private Collection<Long> tagIds = Collections.emptyList();

    /**
     * 标签列表
     */
    @ApiModelProperty("标签列表")
    private Collection<UserTagDTO> tags = Collections.emptyList();
}
